import 'moment/locale/zh-cn'

export class ChineseCalendar {
  // 农历节日
  private static lunarFestivals = {
    '0101': '春节',
    '0115': '元宵节',
    '0505': '端午节',
    '0707': '七夕节',
    '0815': '中秋节',
    '0909': '重阳节',
    '1208': '腊八节',
    '1230': '除夕',
  }

  // 公历节日
  private static solarFestivals = {
    '0101': '元旦',
    '0214': '情人节',
    '0308': '妇女节',
    '0312': '植树节',
    '0401': '愚人节',
    '0501': '劳动节',
    '0504': '青年节',
    '0601': '儿童节',
    '0701': '建党节',
    '0801': '建军节',
    '0910': '教师节',
    '1001': '国庆节',
    '1224': '平安夜',
    '1225': '圣诞节',
  }

  // 获取农历节日
  static getLunarFestival(date: string): string | null {
    const lunar = this.getLunarDate(date)
    const key = lunar.substring(4) // 获取月日
    return this.lunarFestivals[key] || null
  }

  // 获取公历节日
  static getSolarFestival(date: string): string | null {
    const key = date.substring(4) // 获取月日
    return this.solarFestivals[key] || null
  }

  // 获取农历日期
  private static getLunarDate(date: string): string {
    // TODO: 集成农历转换库
    return date
  }

  // 判断是否为节假日
  static isHoliday(date: string): boolean {
    return !!(this.getLunarFestival(date) || this.getSolarFestival(date))
  }
}
